09. Angular 템플릿 문법
Interpolation
이중 중괄호 {{ }} 사이에 수식을 표현하고, 계산한 다음 그 결과를 화면에 표시
Safe Navigation Operator
존재하지 않는 객체의 변수
를 Interpolation할 때, 앱전체가 중지됌. 예를들어 {{ Animal.Cat }}이 없는데, 템플릿에서 사용한다면 앱 전체가 중지된다. 이를 방지하기위해 {{ Animal?.Cat }} 을 사용한다면, Animal이 존재할때만 Cat에 접근하게 돼어 오류가 발생하지 않는다.
[]기호의 의미 : Property Binding
custom property 로 클래스와 연결시킬 수 있음.
1 | ({ |
클래스에서 속성을 변경할 경우, 템플릿에도 반영됌.
()기호의 의미 : Template Statement
이벤트를 바인딩하기 위해 사용.
- (click) 이벤트
1 | import { Component } from '@angular/core'; |
- (mouseover) 이벤트
- @Output() outputProperty = new EventEmitter
();`
<child (outputProperty)="outputEvent($event)"></child>
@Output()장식자로 선언한 변수와 동일한 속성명.
<child-cmp #child1 [childname]="'자식1'"></child-cmp>
# 기호의 의미
참조변수의 의미이다. 참조변수가 #child1이라고 선언돼 있을때 childname을 참조하려면 {{ child1.childname }} 과 같이 접근한다.
ts파일에서 참조 변수에 접근
하기 위해서는 ViewChild를 이용한다.
1 | import {ViewChild, ElementRef} from '@angular/core'; |
*ngFor, *ngIf
1 | ... |
ngFor
은 iterable
한 변수에서만 사용가능, 배열에서 사용가능
객체에서 사용하기 위해서는 get 함수 만들어 주기.
Reference
https://toddmotto.com/passing-data-angular-2-components-input
https://www.youtube.com/watch?v=Llt_jms4liU&index=16&list=PLAiXlfcSCXYTA8k8AQX0sdRtvpOGkY7yq